Field of the Invention
The present invention relates to the field of model driven development and more particularly to user interface management in a model driven development environment.
Description of the Related Art
The Model Driven Architecture (MDA) approach has been proposed and promoted over the past few years as a methodology for streamlining the design and implementation of enterprise systems. Generally, in MDA each design artifact of the enterprise system can be represented as a Platform Independent Model (PIM) that is generated by or is compliant with a Computation Independent Model. This PIM is able to be transformed to a corresponding Platform Specific Models (PSM) and ultimately to source code that complies with specific programmatic paradigms and patterns. In this context, a PIM represents the elements and components of a software system in a way that is not bound or dependent to a specific implementation technology. By comparison, a PSM represents the elements and components of a software system in a way that directly relates to the implementation technology that will be used for implementing such a system.
Even though MDA frameworks have caught the attention of the software engineering community as a way to increase programmer productivity and overall system robustness through the disciplined manipulation and transformation of models and ultimately code generation, MDA as a methodology has remained so far only as a “guideline” or “standard practice” that is left to be implemented by the individual organizations and software vendors. In this respect, important questions regarding which types of models are to pertain to PIMs and PSMs, how transformations are to be encoded and enacted, how constraints are to be denoted and validated, and how source code is to be generated, remains left to software vendors, software architects and software developers to further design and implement.
Currently, there are a number of tools that support MDA compliant or semi-compliant software development. More specifically, existing MDA tools can be classified in two main categories namely, “full-MDA-capability” tools that incorporate modeling, transformation, and code generation infrastructure, and “limited-MDA-capability” tools that incorporate only code generation infrastructure using specific, typically unified model language (UML), models as input. In either circumstance, ensuring that modeling tools satisfy every aspect of the development process can be the key to successful model driven development.
A typical software development lifecycle involves several stages: requirements, design, implementation, testing and operation, and several persons with different roles working on the various stages. Depending on the development model chosen, each of the development lifecycle states may be revisited during the development process. For consistency, a single modeling tool may be chosen to carry out modeling the entire development process. Such a tool can become very complex and overwhelm the developer, when the intent was to ease adapting to change and simplify use through a unified interface.
The modeling tool interface can grow in complexity as the number of supported tool components increase. To reduce the complexity, a separate view of the model may be setup for each component. This however has the drawback, for those developers which take on several roles, of switching views constantly to gain access to the interface tools they need. These developers would be better off with an interface tailored to their role. The role of the developer will be dependent upon their job role as well as the type of model being worked on. Although a developer's role may involve design and implementation, the model itself may only support requirements and design. Therefore the modeling tool interface should not be tailored to the model to satisfy the model, but to decrease complexity experienced by the developer. More to the point, the modeling tool interface should be tailored to provide a simplified experience for the developer.